home *** CD-ROM | disk | FTP | other *** search
/ Aminet 34 / Aminet 34 (2000)(Schatztruhe)[!][Dec 1999].iso / Aminet / comm / misc / ViperDaemon.lha / ViperDaemon-Install / Programme / ARexx / Counter2TCalc.VDaemon next >
Text File  |  1999-08-19  |  3KB  |  80 lines

  1. /* ------------------------------------------------------------
  2. Datei    : Counter2TCalc2.VDaemon
  3.  
  4. Autor    : J.Reinert/Lehrte
  5.  
  6. Funktion : Gebührenzähler auslesen und ab Cursorposition 
  7.            in TurboCalc-Arbeitsblatt einfügen
  8.  
  9. Bedingung: Turbocalc muss gestartet sein
  10.  --------------------------------------------------------------*/
  11.  
  12. options results
  13.  
  14. DaemonStarted=0                             /* Falls Daemon nicht läuft... */
  15.  
  16. if ~show(ports,'ViperDaemon') then do
  17.    ADDRESS COMMAND                          /* CLI-Befehle zugänglich machen */
  18.    "RUN >NIL: ViperDaemon"                 /* ViperDaemon starten */
  19.    WaitForPort "ViperDaemon"               /* warten auf ARexx-Port */
  20.    if rc=0 then DaemonStarted=1             /* wenn gestartet, dann Flag setzen */
  21. end
  22.  
  23. if show(ports,'ViperDaemon') then          /* Ist ViperDaemon wirklich aktiv?*/
  24. do
  25.   if show(ports,'TCALC') then 
  26.   do
  27.     Address "ViperDaemon"                  /* Daemon-Port festlegen */
  28.     DD_REQUEST "Zählerstände in TurboCalc-|  Arbeitsblatt eintragen?"
  29.     if result=1 then 
  30.     do
  31.       DD_GETCOUNTER                         /* Gebührenzähler auslesen */
  32.       Counter=result
  33.       Call TransferToTC
  34.       if Summe ~= 0 then 
  35.       do
  36.         Address "ViperDaemon"
  37.         DD_REQUEST "Alle Zähler auf Null setzen?"
  38.         if result=1 then 
  39.         do
  40.           DD_RESETCOUNTER ALL  /* Wenn gewünscht, alle Zähler löschen */
  41.           Counter=result
  42.           Call TransferToTC
  43.         end
  44.       end
  45.     end
  46.   end
  47.   else 
  48.   do                                        /* Kein Turbocalc-Port gesehen */
  49.     Address "ViperDaemon"
  50.     DD_ERROR "Turbocalc läuft nicht!"
  51.   end
  52.  
  53.   if DaemonStarted then                     /* Daemon beenden, falls durch Script gestartet */
  54.   do
  55.     Address "ViperDaemon"
  56.     DD_ExitDaemon
  57.   end
  58. end
  59.  
  60. exit
  61.  
  62. /* -----------------------------------------------------------------------
  63.    Ergebnis zerlegen und in TurboCalc-Arbeitsblatt eintragen 
  64.    -----------------------------------------------------------------------*/
  65.  
  66. TransferToTC:
  67.   Summe=0                                   /* Gebührensumme aller Zähler*/
  68.   ADDRESS TCALC                             /* TurboCalc-Port festlegen */
  69.   GETCURSORPOS
  70.   oldpos = result
  71.   do i=1 to 4                               /* Daten ab Cursorposition eintragen */
  72.     x=SubWord(Counter,i,1)                  /* Wert aus Ergebnis-String holen */
  73.     if i>2 then Summe=Summe+x               /* Summe bilden */
  74.     put x                                   /* Wert in Zelle eintragen */
  75.     column 1                                /* Cursor eine Zelle nach rechts */
  76.   end
  77.   selectcell oldpos                         /* Cursor zurück */
  78.   line 1                                    /* Cursor ein Zeile tiefer */
  79. Return
  80.